#ifndef _SIGNAL_LINK_LIST_H_
#define _SIGNAL_LINK_LIST_H_

typedef enum 
{
    FAIL = -1,
    ERROR,
    OK
}Status_t;/*表示状态信息*/

typedef struct 
{
    char name[40];
    char token[20];
    float price;
}Book_t;/*数据元素为图书信息*/

typedef Book_t ElemType ;

typedef struct list
{
    ElemType data;/*数据域*/
    struct list *next;/*指针域*/
    
}Link_list_t;

/*初始化链表*/
Status_t Init_List(Link_list_t **list);

/*销毁链表*/
void Destroy_List(Link_list_t **list);

/*打印链表*/
void Print_List(Link_list_t *list);

/*获取当前节点个数*/
int get_Node_Num(Link_list_t *list);

/*尾部插入节点*/
Link_list_t* Push_Back(Link_list_t *list,ElemType *elem);

/*尾部删除节点*/
Link_list_t* Pop_Back(Link_list_t *list);

/*头部插入节点*/
Link_list_t* Push_Front(Link_list_t *list,ElemType *elem);

/*头部删除节点*/
Link_list_t* Pop_Front(Link_list_t *list);

/*指定位置插入节点*/
Link_list_t* Insert_Node(Link_list_t *list,int position,ElemType *elem);

/*指定位置删除节点*/
Link_list_t* Delete_Node_Anywhere(Link_list_t *list,int position);



#endif